package com.cdu.guoxinan.www.smartcom.domian.pojo;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
/**
* 居民订单记录
* @TableName order
*/
public class Order implements Serializable {

    /**
    * 订单ID
    */
    @NotNull(message="[订单ID]不能为空")
    @ApiModelProperty("订单ID")
    private Long orderId;
    
    /**
    * 居民ID
    */
    @NotNull(message="[居民ID]不能为空")
    @ApiModelProperty("居民ID")
    private Long residentId;
    
    /**
    * 总金额
    */
    @NotNull(message="[总金额]不能为空")
    @ApiModelProperty("总金额")
    private BigDecimal totalAmount;
    
    /**
    * 订单状态（1 待支付 2 已支付 3 已取消 4 已送达）
    */
    @NotNull(message="[订单状态]不能为空")
    @ApiModelProperty("订单状态（1 待支付 2 已支付 3 已取消 4 已送达）")
    private Integer status;
    
    /**
    * 下单时间
    */
    @NotNull(message="[下单时间]不能为空")
    @ApiModelProperty("下单时间")
    private Date orderTime;
    
    /**
    * 送货地址
    */
    @NotNull(message="[送货地址]不能为空")
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("送货地址")
    private String deliveryAddress;
    
    /**
    * 联系电话
    */
    @NotNull(message="[联系电话]不能为空")
    @Size(max= 20,message="编码长度不能超过20")
    @ApiModelProperty("联系电话")
    private String phoneNumber;
    
    /**
    * 备注信息
    */
    @ApiModelProperty("备注信息")
    private String remark;
    
        /**
     * 订单明细列表（非数据库字段）
     */
    @ApiModelProperty("订单明细列表")
    private List<OrderItem> orderItems;
    
    /**
     * 用户姓名（非数据库字段，用于管理端显示）
     */
    @ApiModelProperty("用户姓名")
    private String userName;
} 